/**
 * 队列
 *
 * 输入：[ [] [1] [100] [3001] [3002] ]
 * 输出：[null,1,2,3,3]
 * 意思是在1，100，3001，3002毫秒都会发出一个请求，计算当前请求最近3000包括3000毫秒内的请求
 */

const RecentCounter = function () {
  this.q = [];
};

/**
 * @param {number} t
 * @returns {number} 返回从 3000毫秒 到现在的 ping 数
 */

RecentCounter.prototype.ping = function (t) {
  this.q.push(t);
  while (this.q[0] < t - 3000) {
    this.q.shift();
  }
  return this.q.length;
};

let r = new RecentCounter();
console.log(r.ping(1)); // 1
console.log(r.ping(100)); // 2
console.log(r.ping(3001)); // 3
console.log(r.ping(3002)); //3
